/** \file    charsets.h
  * \brief   Declaration of global charsets object.
  * \date    2003
  * \author  Fedor Chelnokov
  * \version $Header: /home/cscom1r4/cvsroot/cs/xml/spirit/src/charsets.h,v 1.1 2004/03/22 09:24:09 cscom1r4 Exp $
  */

#ifndef _charsets_h_
#define _charsets_h_

#include <boost/spirit.hpp>

//CRT bug warkaround: prevent warning about memory leakage due to 
//memory allocation in ctor of static object in DLL
class turn_off_heap_dbg
{
	int state;
public:
	turn_off_heap_dbg();
	~turn_off_heap_dbg();
	void cancel();
};

struct charsets : private turn_off_heap_dbg
{
	typedef boost::spirit::chset<wchar_t> chset_t;
	chset_t BaseChar, Ideographic, Letter, CombiningChar, Digit, Extender, NameChar;
	charsets();
	~charsets();
};

extern const charsets the_charsets; //I think it is thread-safe

#endif //_charsets_h_
